package com.ruoyi.safe.service;

import com.github.pagehelper.PageInfo;
import com.ruoyi.quality.domain.TQualityFileItem;
import com.ruoyi.safe.domain.BizDutyRegion;
import com.ruoyi.safe.domain.BizProjectCheckRecord;
import com.ruoyi.safe.domain.dto.BizProjectCheckRecordDTO;
import com.ruoyi.safe.domain.dto.BizProjectCheckRecordSearchDTO;
import com.ruoyi.safe.domain.dto.CheckRecordWebDTO;
import com.ruoyi.safe.domain.vo.BizProjectCheckRecordVO;
import com.ruoyi.safe.domain.vo.ListRequestVo;
import com.ruoyi.safe.domain.vo.StatisticsAndDataVO;

import java.util.List;
import java.util.Set;

/**
 * 项目自检-检查记录Service接口
 * 
 * @author ruoyi
 * @date 2023-11-20
 */
public interface IBizProjectCheckRecordService 
{
    /**
     * 查询项目自检-检查记录
     * 
     * @param id 项目自检-检查记录主键
     * @return 项目自检-检查记录
     */
    public BizProjectCheckRecord selectBizProjectCheckRecordById(Long id);

    public BizProjectCheckRecord selectBizRecordById(Long id);

    /**
     * 查询项目自检-检查记录列表
     * 
     * @param bizProjectCheckRecord 项目自检-检查记录
     * @return 项目自检-检查记录集合
     */
    public List<BizProjectCheckRecord> selectBizProjectCheckRecordList(BizProjectCheckRecord bizProjectCheckRecord);

    /**
     * 新增项目自检-检查记录
     * 
     * @param bizProjectCheckRecord 项目自检-检查记录
     * @return 结果
     */
    public int insertBizProjectCheckRecord(BizProjectCheckRecord bizProjectCheckRecord);

    /**
     * 新增项目自检-检查记录(未登录)
     *
     * @param bizProjectCheckRecordDTO 项目自检-检查记录
     * @return 结果
     */
    public int insertBizProjectCheckRecordNoLogin( BizProjectCheckRecordDTO bizProjectCheckRecordDTO);
    /**
     * 修改项目自检-检查记录
     * 
     * @param bizProjectCheckRecord 项目自检-检查记录
     * @return 结果
     */
    public int updateBizProjectCheckRecord(BizProjectCheckRecord bizProjectCheckRecord);

    /**
     * 批量删除项目自检-检查记录
     * 
     * @param ids 需要删除的项目自检-检查记录主键集合
     * @return 结果
     */
    public int deleteBizProjectCheckRecordByIds(Long[] ids);

    /**
     * 删除项目自检-检查记录信息
     * 
     * @param id 项目自检-检查记录主键
     * @return 结果
     */
    public int deleteBizProjectCheckRecordById(Long id);

    /**
     * 查询项目自检下的所有检查记录
     * @param id
     * @return
     */
    public List<BizProjectCheckRecord> selectCheckRecordListById(Long id);


    Boolean handle(BizProjectCheckRecordDTO bizProjectCheckRecordDTO);

    PageInfo<BizProjectCheckRecord> getRectify(ListRequestVo listRequestVo);

    /**
     * 隐患待复查数量
     */
    int selectBizProjectCheckRecordCount(ListRequestVo listRequestVo);

    PageInfo<BizProjectCheckRecord> getReview(ListRequestVo listRequestVo);

    List<BizProjectCheckRecord> selectBizProjectCheckRecord(Long projectId, Long planId,String hiddenDangerStatus);

    BizProjectCheckRecordVO getRectifyByRecordId(ListRequestVo listRequestVo);


    int updateProjectCheckRecord(BizProjectCheckRecordDTO bizProjectCheckRecordDTO);

    List<BizProjectCheckRecord> selectUnRecordList(BizProjectCheckRecord projectCheckRecord);


    /**
     * 整改待办数量
     */
    int getReformCount(ListRequestVo listRequestVo);

    /**
     * 检查人列表
     * @return
     */
    List<String> selectCheckPeopleList();

    /**
     * 查询已添加的检查记录
     * @param createTime
     * @return
     */
    public List<BizProjectCheckRecord> selectAllRecordList(String createTime);

    /**
     * 安全检查台账
     */
    StatisticsAndDataVO selectCheckLedger(BizProjectCheckRecordSearchDTO searchDTO);

    BizProjectCheckRecord selectBizProjectCheckRecordVO2ById(Long id,Long projectCheckId);

    /**
     * 根据i修改通知人
     */
    Boolean updateNoticePeopleById(BizProjectCheckRecordDTO bizProjectCheckRecordDTO);

    String getRegionNames(List<BizDutyRegion> bizDutyRegions, Set<Long> parentsRegion);

    /**
     * 根据项目自检id查询隐患记录数据
     * @param projectCheckId
     * @return
     */
    List<BizProjectCheckRecord> selectListByProjectCheckId(Long projectCheckId);

    int addCheckRecord(CheckRecordWebDTO checkRecordWebDTO);

}
